Using Induction to Prove Properties of Distributed Programs
نویسندگان
چکیده
Proofs of distributed programs are often informal due to the diiculty of developing formal proofs. Properties of distributed programs are often stated using Lamport's causally-precedes relation and its complement , not-causally-precedes. Properties that involve the causally-precedes relation are fairly straight forward to prove using induction. However, properties that involve not-causally-precedes are quite diicult to prove. Such properties are common since predicates on the global state of a system implicitly use the not-causally-precedes relation. This paper presents a method of induction on the not-causally-precedes relation and demonstrates the technique by formally proving a variant of the well known algorithm for maintaining a vector clock.
منابع مشابه
Causality for Time: How to Specify and Verify Distributed Algorithms
We illustrate a technique for proving properties of distributed programs. Our technique avoids the notion of global time or global state. Furthermore, it does not require any use of temporal logic. All properties are proven using induction on the happened-before relation and its complement. We illustrate our technique by providing a formal proof of Lamport's algorithm for mutual exclusion.
متن کاملReasoning about Inductive Definitions: Inversion, Induction, and Recursion
Previously, we defined the small Vapid programming language. Since the language has a finite number of programs, its syntax was very easy to define: just list all the programs! In turn it was straightforward to define its evaluation function by cases, literally enumerating the results for each individual program. Finally, since the evaluator was defined by listing out the individual cases (prog...
متن کاملBind Induction: Extracting Monadic Programs from Proofs
Container types can be modeled as instances of the Haskell MonadPlus type class which support a fold operation. In this paper we present subclasses that extend the MonadPlus type class to support a membership operator. The laws for the EMonadPlus type class specify how membership behaves with respect to the monad and monad plus operators. Using EMonads we are able write and prove properties of ...
متن کاملReasoning about Codata
Programmers happily use induction to prove properties of recursive programs. To show properties of corecursive programs they employ coinduction, but perhaps less enthusiastically. Coinduction is often considered a rather low-level proof method, in particular, as it departs quite radically from equational reasoning. Corecursive programs are conveniently defined using recursion equations. Suitabl...
متن کاملEffects of explant type and growth regulators on callus induction in four ecotypes of Persian shallot
Allium hirtifolium commonly known as Persian shallot is an important wild medicinal plant distributed from North West to central and South West of Iran. To establish an efficient protocol for callus induction, the effects of explant type and growth regulators on callus induction in four ecotypes of Persian shallot were evaluated. Two explants types included basal plates and young leave...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1993